package JZ_Offer.algorithm.other.字符串;

/**
 * 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如，当从字符流中只读出前两个字符"go"时，第一个只出现一次的字符是"g"。
 * 当从该字符流中读出前六个字符“google"时，第一个只出现一次的字符是"l"。
 */
public class JZ75_字符流中第一个不重复的字符 {

    byte index = 0;
    char[] str = new char[128];
    byte[] count = new byte[128];

    //Insert one char from stringstream
    public void Insert(char ch) {
        str[index++] = ch;
        count[ch]++;
    }

    //return the first appearence once char in current stringstream
    public char FirstAppearingOnce() {
        for (int i = 0; i < str.length; i++) {
            char c = str[i];
            if (count[c] == 1) {
                return c;
            }
        }
        return '#';
    }

}
